home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Libris Britannia 4
/
science library(b).zip
/
science library(b)
/
PROGRAMM
/
TUTORIAL
/
0855.ZIP
/
IBMBIOS.TXT
< prev
next >
Wrap
Text File
|
1985-04-07
|
36KB
|
655 lines
Gaslight Software, Berea, Ohio - Programmers reference Page 132
The following describes the services available using the interrupt routines
embedded in the IBM PC-XT bios roms. Also listed are relevant data locations.
Bios data locations:
Address Data Type Content description
-----------------------------------------------------------------------------
0040:0000h (4) word array Port addresses (up to 4) of RS232 adapters in
system (COM1, COM2, COM3 and COM4)
0040:0008h (4) word array Port addresses (up to 4) of printer adapters
in system (LPT1, LPT2, LPT3 and LPT4)
0040:0010h word Equipment flag representing installed hardware
(refer to INT type 11h for description).
0040:0013h word Installed memory size in 1k increments.
0040:0017h byte Keyboard flag no. 1 (refer to INT type 16h for
bit position description).
0040:0018h byte Keyboard flag no. 2. Bit positions:
Bit 7 - Insert key is pressed.
Bit 6 - Caps lock key is pressed.
Bit 5 - Num lock key is pressed.
Bit 4 - Scroll lock key is pressed.
Bit 3 - Suspend key has been toggled.
Bit 2 - ?
Bit 1 - ?
Bit 0 - ?
0040:001Ah word Pointer to keyboard buffer head.
0040:001Ch word Pointer to keyboard buffer tail.
0040:001Eh (16) byte array Keyboard buffer (room for 15 entries).
0040:0041h byte Diskette status byte (refer to INT type 13h
for description).
0040:0049h byte Current video mode (refer to INT type 10h for
description).
0040:004Ah word Number of columns on screen.
0040:004Ch word Length of video screen buffer (in bytes).
0040:004Eh word Starting address (offset) of video screen buffer.
0040:0050h (8) word array Cursor position for each of up to 8 pages.
0040:0060h word Current cursor mode.
0040:0062h byte Current video page being displayed.
0040:0063h word Port address of current video adapter.
0040:0065h byte Current setting of video 3 x 8 register.
0040:0066h byte Current color palette for color card.
0040:006Ch double word double word timer count (refer to INT type 1Ah
for description of timer).
0040:0070h byte Timer rollover flag (refer to INT type 1Ah).
0040:0078h (4) byte array Printer port timeout values (up to 4 ports).
0040:007Ch (4) byte array RS232 port timeout values (up to 4 ports).
B000:0000h Start of monochrome video screen buffer.
B800:0000h Start of color video screen buffer.
Gaslight Software, Berea, Ohio - Programmers reference Page 133
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
Interrupt type: 5h
Interrupt name: Print screen
Description: This routine will copy the current contents of the screen
buffer to the printer device. The cursor position at the
time this routine is invoked will be saved and restored upon
completion. The routine is intended to run with interrupts
enabled. If a subsequent 'print screen` key is depressed
during the time this routine is printing, it will be ignored.
Address 50:0 contains the status of the print screen:
0050:0000 = 0 - Either print screen has not been called or
upon return from a call this indicates a
successful operation.
0050:0000 = 1 - Print screen is in progress.
0050:0000 = FFh - An error was encounterd during printing.
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
Gaslight Software, Berea, Ohio - Programmers reference Page 134
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
Interrupt type: 10h
Interrupt name: Video I/O
Description: These routines provide the CRT interface.
-------------------------------------------------------------
Inputs: (AH)=0 - Set video mode. (AL) contains the mode value:
(AL)=0 - 40 x 25 bw text (power on default)
(AL)=1 - 40 x 25 color text
(AL)=2 - 80 x 25 bw text
(AL)=3 - 80 x 25 color text
(AL)=4 - 320 x 200 color graphics
(AL)=5 - 320 x 200 bw graphics
(AL)=6 - 640 x 200 bw graphics
(AL)=7 - 80 x 25 monochrome card text
NOTE: Bw mode operates same as color modes except color
burst signal is not enabled.
-------------------------------------------------------------
(AH)=1 - Set cursor type. CX defines cursor as follows:
(CH) - Start line for cursor (0-31)
(CL) - End line for cursor (0-31)
-------------------------------------------------------------
(AH)=2 - Set cursor position. (0,0) is upper left corner.
(DH) - Row
(DL) - Column
(BH) - Page (must be 0 for graphics modes)
-------------------------------------------------------------
(AH)=3 - Read cursor position.
(BH) - Page number (must be 0 for graphics modes)
On exit:
(DH) - Cursor row
(DL) - Cursor column
(CX) - Cursor mode as set above (set cursor type).
-------------------------------------------------------------
(AH)=4 - Read light pen position.
On exit:
(AH) = 0 - Light pen switch not down/not triggered
(AH) = 1 - Valid light pen value in registers:
(DH) - Row of character light pen position.
(DL) - Column of character light pen position.
(CH) - Raster line (0-199)
(BX) - Pixel column (0-319,639)
-------------------------------------------------------------
(AH)=5 - Select active display page (valid only for text modes).
(AL) = New page (0-7 for modes 0&1, 0-3 for modes 2&3).
-------------------------------------------------------------
(AH)=6 - Scroll defined window region on active page up.
(AL) = Number of lines to scroll (0 will blank entire
window). Input lines blanked at bottom of window.
(CH) = Row of upper left corner of window.
(CL) = Column of upper left corner of window.
(DH) = Row of lower right corner of window.
(DL) = Column of lower right corner of window.
(BH) = Attribute to use on blank fill lines at bottom.
-------------------------------------------------------------
Gaslight Software, Berea, Ohio - Programmers reference Page 135
(AH)=7 - Scroll defined window region on active page down.
(AL) = Number of lines to scroll (0 will blank entire
window). Input lines blanked at top of window.
(CH) = Row of upper left corner of window.
(CL) = Column of upper left corner of window.
(DH) = Row of lower right corner of window.
(DL) = Column of lower right corner of window.
(BH) = Attribute to use on blank fill lines at bottom.
-------------------------------------------------------------
(AH)=8 - Read attribute and character at current cursor position.
(BH) = Display page to read from (valid for text modes)
On exit:
(AL) = Character at current cursor position.
(AH) = Attribute of character at current cursor position.
-------------------------------------------------------------
(AH)=9 - Write attribute and character at current cursor position.
(BH) = Display page to write to (valid for text modes).
(CX) = Count of characters to write.
(AL) = Character to write.
(BL) = Attribute of character (text mode) or color of
character (graphics modes). If bit 7 of BL = 1,
then the color value is exclusive or'd with the
current contents at cursor position.
-------------------------------------------------------------
(AH)=0Ah - Write character only at current cursor position.
(BH) = Display page to write to (valid for text modes).
(CX) = Count of characters to write.
(AL) = Character to write.
-------------------------------------------------------------
(AH)=0Bh - Set color palette.
(BH) = Palette color id being set (0-127).
(BL) = Color value to be used with that color id.
NOTE: For the current color card, this entry point
has meaning only for 320 x 200 graphics.
Color id = 0 selects the background color (0-15).
Color id = 1 selects the palette to be used:
0 = Green(1) / Red(2) / Yellow(3)
1 = Cyan(1) / Magenta(2) / White(3)
In 40 x 25 or 80 x 25 alpha modes, the value set
for palette color 0 indicates the border color
to be used (0-31 where 16-31 select the high
intensity background set).
-------------------------------------------------------------
(AH)=0Ch - Write dot to specified pixel location.
(DX) = Pixel row number.
(CX) = Pixel column number.
(AL) = Color value. If bit 7 of AL = 1 then the color
value is exclusive or'd with the current contents
of the dot.
-------------------------------------------------------------
(AH)=0Dh - Read dot at specified pixel location.
(DX) = Pixel row number.
(CX) = Pixel column number.
On exit:
(AL) = The dot read.
-------------------------------------------------------------
Gaslight Software, Berea, Ohio - Programmers reference Page 136
(AH)=0Eh - Write character to active page.
(AL) = Character to write.
(BL) = Foreground color in graphics mode.
NOTE: Screen width is controlled by previous mode set.
-------------------------------------------------------------
(AH)=0Fh - Return the current video state (mode).
On exit:
(AL) = 0 - 40 x 25 bw text (power on default)
(AL) = 1 - 40 x 25 color text
(AL) = 2 - 80 x 25 bw text
(AL) = 3 - 80 x 25 color text
(AL) = 4 - 320 x 200 color graphics
(AL) = 5 - 320 x 200 bw graphics
(AL) = 6 - 640 x 200 bw graphics
(AL) = 7 - 80 x 25 monochrome card text
(AH) = Number of character columns on screen.
(BH) = Current active display page.
-------------------------------------------------------------
Output: Registers CS, SS, DS, ES, BX, CX, DX preserved during call.
All other destroyed.
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
Gaslight Software, Berea, Ohio - Programmers reference Page 137
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
Interrupt type: 11h
Interrupt name: Equipment determination
Description: This routine attempts to determine what optional devices are
attached to the system.
-------------------------------------------------------------
Output: (AX) is set as follows to indicate the attached I/O:
Bit 15,14 - Number of printers attached.
Bit 13 - Not used
Bit 12 - Game I/O attached.
Bit 11,10,9 - Number of RS232 cards attached.
Bit 8 - Not used.
Bit 7,6 - Number of diskette drives (00=1, 01=2,
10=3, 11=4 only if bit 0 = 1)
Bit 5,4 - Initial video mode:
00 - unused
01 - 40 x 25 bw using color card
10 - 80 x 25 bw using color card
11 - 80 x 25 using monochrome card
Bit 3,2 - Planar RAM size (00=16k,01=32k,10=48k,11=64k)
Bit 1 - Not used.
Bit 0 - IPL from diskette, this bit indicates that
there are diskette drives on the system.
-------------------------------------------------------------
No other registers affected.
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
Gaslight Software, Berea, Ohio - Programmers reference Page 138
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
Interrupt type: 12h
Interrupt name: Memory size
Description: This routine determines the amount of memory in the system as
represented by the switches on the base board. Note that the
system may not be able to use I/O memory unless there is a full
complement of 64k bytes on the base board.
-------------------------------------------------------------
Outputs: (AX) = Number of contiguous 1k blocks of memory installed.
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
Gaslight Software, Berea, Ohio - Programmers reference Page 139
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
Interrupt type: 13h
Interrupt name: Diskette I/O (PC bios without fixed disk)
Description: This interface provides access to the 5 1/4 diskette drives.
-------------------------------------------------------------
Input: (AH)=0 - Reset diskette system. Hardware reset to NEC con-
troller, prepare command, recal required on all drives.
-------------------------------------------------------------
(AH)=1 - Read the status of the system into (AL). DISKETTE_
STATUS (byte at 0000:0441h) from last operation is
returned.
-------------------------------------------------------------
(AH)=2 - Read the desired sectors into memory. (see below).
-------------------------------------------------------------
(AH)=3 - Write the desired sectors from memory. (see below).
-------------------------------------------------------------
(AH)=4 - Verify the desired sectors. (see below).
-------------------------------------------------------------
(AH)=5 - Format the desired track. For the format operation,
the buffer pointer (ES:BX) must point to the collection
of desired address fields for the track. Each field
is composed of 4 bytes (C,H,R,N) where:
C = track number, H = head number, R = sector number
and N = number of bytes per sector (00=128, 01=256,
02=512, 03=1024). There must be one entry for every
sector on the track. This information is used to find
the requested sector during read/write access.
-------------------------------------------------------------
Register parameters for read/write/verify/format
(DL) - Drive number (0-3 allowed, value checked)
(DH) - Head number (0-1 allowed, not value checked)
(CH) - Track number (0-39, not value checked)
(CL) - Sector number (1-8, not value checked, not
used for format)
(AL) - Number of sectors (max=8, not value checked,
not used for format)
(ES:BX) - pointer to buffer (not required for verify)
-------------------------------------------------------------
Data variable - Double word pointer (DISK_POINTER at 0000:
0078h) points to the current disk parameter table.
-------------------------------------------------------------
Output: (AH) - Status of operation. Status codes are defined as
follows:
80h - TIME_OUT, attached device failed to respond
40h - BAD_SEEK, seek operation failed
20h - BAD_NEC, NEC controller has failed
10h - BAD_CRC, bad CRC on diskette read
09h - DMA_BOUNDARY, attempt to DMA across 64k boundary
08h - BAD_DMA, DMA overrun on operation
04h - RECORD_NOT_FOUND, requested sector not found
03h - WRITE_PROTECT, write attempted to write prot disk
02h - BAD_ADDR_MARK, address mark not found
01h - BAD_CMD, bad command passed to diskette I/O
(CY)=0 - Successful operation (AH=0 on return)
(CY)=1 - Failed operation (AH has error reason)
-------------------------------------------------------------
Gaslight Software, Berea, Ohio - Programmers reference Page 140
For read/write/verify:
DS, BX, DX, CH, CL are preserved
AL = number of sectors actually read (NOTE: AL may
not be correct if time out error occurs).
-------------------------------------------------------------
NOTE: If an error is reported by the diskette code, the
appropriate action is to reset the diskette, then retry
the operation. On read accesses, no motor start delay
is taken, so that three retries are required on reads
to ensure that the problem is not due to motor startup.
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
Gaslight Software, Berea, Ohio - Programmers reference Page 141
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
Interrupt type: 13h
Interrupt name: Fixed disk I/O interface (XT bios with fixed disk)
Description: This interface provides access to the 5 1/4 diskette drives
through the fixed disk controller.
-------------------------------------------------------------
Input: (AH)=0 - Reset disk. (DL = 80h,81h) / diskette.
-------------------------------------------------------------
(AH)=1 - Read the status of the system into (AL). DISK_
STATUS (byte at 0000:0474h) from last operation is
returned. NOTE: DL < 80h - diskette, DL > 80h - disk.
-------------------------------------------------------------
(AH)=2 - Read the desired sectors into memory. (see below).
-------------------------------------------------------------
(AH)=3 - Write the desired sectors from memory. (see below).
-------------------------------------------------------------
(AH)=4 - Verify the desired sectors. (see below).
-------------------------------------------------------------
(AH)=5 - Format the desired track.
-------------------------------------------------------------
(AH)=6 - Format the desired track and set bad sector flags.
-------------------------------------------------------------
(AH)=7 - Format the drive starting at the desired track.
-------------------------------------------------------------
(AH)=8 - Return the current drive parameters.
-------------------------------------------------------------
(AH)=9 - Initialize drive pair characteristics. Interrupt
41h points to data block.
-------------------------------------------------------------
(AH)=0Ah - Read long.
-------------------------------------------------------------
(AH)=0Bh - Write long.
-------------------------------------------------------------
(AH)=0Ch - Seek
-------------------------------------------------------------
(AH)=0Dh - Alternate disk reset (see DL)
-------------------------------------------------------------
(AH)=0Eh - Read sector buffer.
-------------------------------------------------------------
(AH)=0Fh - Write sector buffer, (recommended practice before
formatting.
-------------------------------------------------------------
(AH)=10h - Test drive ready.
-------------------------------------------------------------
(AH)=11h - Recalibrate.
-------------------------------------------------------------
(AH)=12h - Controller RAM diagnostic.
-------------------------------------------------------------
(AH)=13h - Drive diagnostic.
-------------------------------------------------------------
(AH)=14h - Controller internal diagnostic.
-------------------------------------------------------------
Gaslight Software, Berea, Ohio - Programmers reference Page 142
Register parameters for fixed disk operations:
(DL) - Drive number (80h-87h for disk, value checked).
(DH) - Head number (0-7 allowed, not value checked)
(CH) - Cylinder number (0-1023, not value checked)
(CL) - Sector number (1-17, not value checked)
NOTE: High 2 bits of cylinder number are placed
in the high 2 bits of the CL register (10
bits total).
(AL) - Number of sectors (max range 1-80h, for read/
write long 1-79h) (interleave value for format,
1 - 16d).
(ES:BX) - pointer to buffer (not required for verify)
-------------------------------------------------------------
Data variable - Double word pointer (DISK_POINTER at 0000:
0078h) points to the current disk parameter table.
-------------------------------------------------------------
Output: (AH) - Status of operation. Status codes are defined as
follows:
FFh - SENSE_FAIL, sense operation failed
BBh - UNDEF_ERR, undefined error occurred
80h - TIME_OUT, attached device failed to respond
40h - BAD_SEEK, seek operation failed
20h - BAD_NEC, NEC controller has failed
11h - DATA_CORRECTED, ECC corrected data error
10h - BAD_ECC, bad ECC on diskette read
0Bh - BAD_TRACK, bad track flag detected
09h - DMA_BOUNDARY, attempt to DMA across 64k boundary
07h - INIT_FAIL, drive parameter activity failed
05h - BAD_RESET, reset failed
04h - RECORD_NOT_FOUND, requested sector not found
02h - BAD_ADDR_MARK, address mark not found
01h - BAD_CMD, bad command passed to diskette I/O
(CY)=0 - Successful operation (AH=0 on return)
(CY)=1 - Failed operation (AH has error reason)
-------------------------------------------------------------
NOTE: Error 11h indicates that the data read had a recoverable
error which was corrected by the ECC algorithm. The data
is probably good, however the bios routine indicates an
error to allow the controlling program a chance to decide
for itself. The error may not recur if the data is re-
written. (AL) contains the burst length.
If an error is reported by the disk code, the appropriate
action is to reset the disk, then retry the operation.
-------------------------------------------------------------
If drive parameters were requested, the following is returned:
(DL) = number of consecutive acknowledging drives at-
tached (0-2).
(DH) = maximum useable value for head number.
(CH) = maximum useable value for cylinder number.
(CL) = maximum useable value for sector number and
cylinder number high bits.
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
Gaslight Software, Berea, Ohio - Programmers reference Page 143
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
Interrupt type: 14h
Interrupt name: RS232_IO
Description: This routine provides byte stream i/o to the communications
port according to the parameters:
-------------------------------------------------------------
Input: (AH)=0 - Initialize the communications port
(AL) has parameters for initialization
--- baud rate --- - parity - stopbits length
bit 7 6 5 4 3 2 1 0
000 - 110 x0 - none 0 - 1 10 - 7 bits
001 - 150 01 - odd 1 - 2 11 - 8 bits
010 - 300
011 - 600
100 - 1200
101 - 2400
110 - 4800
111 - 9600
On return, conditions set as in call to comm status (AH=3)
-------------------------------------------------------------
(AH)=1 - Send the character in (AL) over the comm line
(AL) register is preserved.
On exit, bit 7 of AH is set if the routine was unable
to transmit the byte of data over the line. If bit 7
of AH is not set, the remainder of AH is set as in a
status request, reflecting the current status of the
line.
-------------------------------------------------------------
(AH)=2 - Receive a character in (AL) from comm line before
returning to caller.
On exit, AH has the current line status, as set by the
status routine, except that the only bits left on are
the error bits (7,4,3,2,1). If AH has bit 7 on (time
out) the remaining bits are not predictable. Thus
AH is non zero only when an error occurred.
-------------------------------------------------------------
(AH)=3 - Return the comm port status in (AX)
AH contains the line status:
Bit 7 - time out
Bit 6 - trans shift register empty
Bit 5 - tran holding register empty
Bit 4 - break detected
Bit 3 - framing error
Bit 2 - parity error
Bit 1 - overrun error
Bit 0 - data ready
AL contains the modem status:
Bit 7 - received line signal detect
Bit 6 - ring indicator
Bit 5 - data set ready
Bit 4 - clear to send
Bit 3 - delta receive line signal detect
Bit 2 - trailing edge ring detector
Bit 1 - delta data set ready
Bit 0 - delta clear to send
-------------------------------------------------------------
Gaslight Software, Berea, Ohio - Programmers reference Page 144
(DX) = Parameter indicating which RS232 card (0,1 allowed)
-------------------------------------------------------------
Data area RS232_BASE (400h) contains the base address of the
8250 on the card, this location contains up to 4 RS232 addresses
(word) possible. Data area label RS232_TIM_OUT (47Ch) contains
outer loop count value (byte) for timeouts of up to 4 comm's
(default = 1).
Output:
AX modified according to parms of call
all others unchanged
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
Gaslight Software, Berea, Ohio - Programmers reference Page 145
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
Interrupt type: 15h
Interrupt name: Cassette I/O
Description: Dummy cassette I/O routine, returns 'invalid cmd' if the
routine is ever called by accident.
-------------------------------------------------------------
Output: (AX) = 86h
(CY) = 1
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
Gaslight Software, Berea, Ohio - Programmers reference Page 146
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
Interrupt type: 16h
Interrupt name: Keyboard I/O
Description: These routines provide keyboard support
-------------------------------------------------------------
Input: (AH)=0 - Read the next ascii character struck from the keyboard.
Return the result in (AL), scan code in (AH).
-------------------------------------------------------------
(AH)=1 - Set the Z flag to indicate if an ascii character is
available to be read.
(ZF)=1 -- no code available
(ZF)=0 -- code is available
If ZF = 0, the next character in the buffer to be read
is in AX, and the entry remains in the buffer.
-------------------------------------------------------------
(AH)=2 - Return the current shift status in AL register. The
bit settings for this code are:
Bit 7 - insert state is active
Bit 6 - caps lock state has been toggled
Bit 5 - num lock state has been toggled
Bit 4 - scroll lock state has been toggled
Bit 3 - alternate shift key depressed
Bit 2 - control shift key depressed
Bit 1 - left shift key depressed
Bit 0 - right shift key depressed
-------------------------------------------------------------
Output:
As noted above, only AX and flags changed.
All other registers preserved.
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
Gaslight Software, Berea, Ohio - Programmers reference Page 147
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
Interrupt type: 17h
Interrupt name: Printer I/O
Description: This routine provides communication with the printer.
-------------------------------------------------------------
Input: (AH)=0 - Print the character in (AL). On return, AH = 1 if
character could not be printed (time out). Other
bits set as on a normal status call below.
-------------------------------------------------------------
(AH)=1 - Initialize the printer port. Returns with AH set
with printer status.
-------------------------------------------------------------
(AH)=2 - Read the printer status into (AH). The following
defines the individual bits:
Bit 7 - 1 = not busy
Bit 6 - 1 = acknowledge
Bit 5 - 1 = out of paper
Bit 4 - 1 = selected
Bit 3 - 1 = I/O error
Bit 2 - not used
Bit 1 - not used
Bit 0 - 1 = timeout
-------------------------------------------------------------
(DX) = Printer to be used (0,1,2,3) corresponding to actual
values in PRINTER_BASE (0000:0408h) data table
which holds the port addresses (words) of up to four
printer adapter cards. Data area PRINT_TIM_OUT (4
bytes at (0000:0478h)) may be changed to cause dif-
ferent time out waits (default = 20).
-------------------------------------------------------------
Output: (AH) is modified, all others unchanged.
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
Gaslight Software, Berea, Ohio - Programmers reference Page 148
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
Interrupt type: 19h
Interrupt name: Bootstrap loader (PC version without fixed disk)
Description: Track 0, sector 1 is read into the boot location (segment 0
offset 7C00h) and control is transferred there. If there
is a hardware error control is transferred to the rom basic
entry point.
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
Interrupt type: 19h
Interrupt name: Bootstrap loader (XT version with fixed disk)
Description: The fixed disk bios replaces the interrupt 19h vector with a
pointer to this routine. Reset the disk and diskette parameter
vectors.
The boot strap sequence is as follows:
- Attempt to load from diskette drive into the boot location
(0000:7C00h) and transfer control there.
- If the diskette fails, the fixed disk is tried for a valid
bootstrap block. A valid boot block on the fixed disk
consists of the bytes 055h 0AAh as the last two bytes of the
block. If valid, cylinder 0, sector 1 of the fixed disk is
read into the boot location (0000:7C00h) and control is
transferred to that location.
- If the above fails, control is passed to the rom basic entry
point.
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
Gaslight Software, Berea, Ohio - Programmers reference Page 149
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
Interrupt type: 1Ah
Interrupt name: Time of day
Description: This routine allows the clock to be set/read
-------------------------------------------------------------
Input: (AH)=0 - Read the current clock count.
On exit:
(CX) = Upper half of double word count.
(DX) = Lower half of double word count.
(AL) = 0 if timer has not passed 24 hours since last
read. Non zero if on another day.
-------------------------------------------------------------
(AH)=1 - Set the current clock using the following:
(CX) = Upper half of double word count.
(DX) = Lower half of double word count.
-------------------------------------------------------------
NOTE: Counts occur at the rate of 1193180/65536 counts/sec,
or approximately 18.2 per second.
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *